#pragma once

typedef unsigned char u8_s;
typedef unsigned short u16_s;
typedef unsigned int u32_s;
typedef unsigned long long u64_s;
typedef signed char i8_s;
typedef signed short i16_s;
typedef signed int i32_s;
typedef signed long long i64_s;

typedef enum {
	T8B_0_R = 0,
	T8B_1_R = 1,
	T8B_2_R = 2,
	T8B_3_R = 3,
} t8b_re;

typedef enum {
	T16B_0_R = 0,
	T16B_2_R = 2,
} t16b_re;

typedef union {
	u32_s u32;
	u16_s u16_a[2];
	u8_s u8_a[4];
} uint_8_16_32_s;

_Static_assert(sizeof(uint_8_16_32_s) == 4,
	       "Struct uint_8_16_32_s defined error!");

typedef union {
	u32_s u32;
	u16_s u16_a[2];
} uint_16_32_s;

_Static_assert(sizeof(uint_16_32_s) == 4, "Struct uint_16_32_s defined error!");

typedef struct {
	u8_s value : 1;
	u8_s : 7;
} uint8_bool_s;

_Static_assert(sizeof(uint8_bool_s) == 1, "Struct uint8_bool_s defined error!");

// 函数类型：无参数和返回值，代表过程。
typedef void prcdr_ft(void);
